Geometrie
Geometrie ve WPF slouží stejně jako v matematice k popisu objektů. Na rozdíl od tříd odvozených od třídy Shape je nelze nakreslit bez pomocného elementu. Elementy geometrie nedisponují atributy Stroke, StrokeThickness nebo Fill. Tyto atributy se nastavují přes pomocný element.
Obrázek 4 Diagram tříd pro geometrie ve WPF [zdroj: vlastní]
Na Obrázku 4 je zobrazen element Path. Tento element slouží pro zobrazování geometrií. Nastavuje pro všechny zobrazované elementy (geometrie) atributy: Stroke, StrokeThickness nebo Fill. Atribut Data slouží pro nastavení zobrazované geometrie. Na obrázku 4 je také zobrazena třída Geometry. Od ní jsou odvozeny další třídy geometrie. LineGeometry, EllipseGeometry a RectangleGeometry vytvoří základní grafické tvary. PathGeometry slouží k vytvoření skupiny čar složených z různých segmentů (částí). Geometrie CombinedGeometry dovoluje aplikovat na geometrie operace jako je sjednocení nebo třeba odečtení. GeometryGroup dovoluje sjednotit více geometrií v atributu Data.
Geometrie základních grafických tvarů mají rozdílné atributy oproti těm odvozených od třídy Shape. Na Obrázku 5 jsou zobrazeny některé z elementů geometrií a jejich atributů.
Obrázek 5 Ukázky geometrií a jejich atributů [zdroj: vlastní]
<Path Stroke="Black" StrokeThickness="3" Fill="LightGray">
<Path.Data>
<ectangleGeometry Rect="60,60,150,150"/>
</Path.Data>
</Path>
PathGeometry
Pomocí PathGeometry je možné vytvořit skupinu čar složených ze segmentů. Každý segment může tvořit například úsečka, oblouk nebo Bézierova křivka. Čáry jsou definovány pomocí třídy PathFigure. Na Obrázku 6 je diagram třídy PathGeometry. Tato třída má atribut Figures pro vytvoření jednotlivých čar (PathFigure). Atribut Segmets je kolekcí jednotlivých částí tvořících čáru PathFigure. StartPoint udává počáteční bod celé čáry.
Obrázek 6 Diagram třídy pro PathGeometry [zdroj: vlastní]
<PathGeometry>
<PathFigure StartPoint="10,10">
<LineSegment Point="200,30"/>
<ArcSegment Point="180,100" Size="60,50"/>
</PathFigure>
<PathFigure StartPoint="20,100">
<BezierSegment Point1="150,130" Point2="10,200" Point3="230,150"/>
</PathFigure>
</PathGeometry>